#!/bin/ksh

cat << E
# linecard with 1 xbar32

definitions

pins 64
xbars 4
xbar_ports 32
transceivers 16
transceiver_ports 4

# how transceivers are reported by HTML interface
transceiver_string quad_port
link_type quad_fiber

end_definitions

# labels for xcvrs
xcvr_labels
E

i=0
while (( i < 16 )); do
  let j=i+16
  print "$i $j"
  let i+=1
done

cat << E
end_xcvr_labels

# links from xbars to transceivers
xbar_xcvr_links

# xbar_no xbar_port xcvr_no xcvr_port
E

x=0
while ((x < 4)); do
  i=0
  while (( i < 16 )); do
    print "$x $i $i $x"
    let i+=1
  done
  let x+=1
done

cat << E
end_xbar_xcvr_links


# links from pins to xbars
pin_xbar_links

# pin xbar_no xbar_port
E

pin=0
x=0
port=16
while (( pin < 64 )); do
  print "$pin $x $port"
  let pin+=1
  let x+=1
  if (( x >= 4 )); then
    x=0
    let port+=1
  fi
done

cat << E
end_pin_xbar_links

# no links from pins to xcvrs
E
